#include <cctype>
#include <string>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 
     * @param param string字符串 
     * @return string字符串
     */
    string compressString(string param) {
        // write code here
        if(param=="")
        {
            return "";
        }
        char s='#';
        int j=0;
        string q;
        for(int i=0;i<param.size();i++)
        {
            if(s=='#')
            {
                s=param[i];
                j=1;
            }
            else{
                if(param[i]==s)
                {
                    j++;
                }
                else{
                    q+=s;
                    if(j>1)
                    {
                        q+=to_string(j);
                    }
                    s=param[i];
                    j=1;
                }
            }
        }
        if(j)
        {
            q+=s;
            if(j>1)
            {
                q+=to_string(j);
            }
        }
        return q;
    }
};



#include <iostream>
#include <algorithm>
#include <linux/limits.h>
using namespace std;
const int N=2e5+10;
struct Node{
    int a;
    int b;
}node[N];
bool cmp(const Node& a,const Node& b)
{
    if(a.b==b.b)
    {
        return a.a<b.a;
    }
    return a.b>b.b;
}
int main() {
    int n,k;
    cin >> n >> k;
    for(int i=0;i<n;i++)
    {
        cin >> node[i].a;
    }
    for(int i=0;i<n;i++)
    {
        cin >> node[i].b;
    }
    sort(node,node+n,cmp);
    long long sum=0;
    long long sump=0;
    for(int i=0;i<k;i++)
    {
        sum+=node[i].b;
        sump+=node[i].a;
    }
    cout << sump << " " << sum;
    return 0;
}


class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 计算01背包问题的结果
     * @param V int整型 背包的体积
     * @param n int整型 物品的个数
     * @param vw int整型vector<vector<>> 第一维度为n,第二维度为2的二维数组,vw[i][0],vw[i][1]分别描述i+1个物品的vi,wi
     * @return int整型
     */
    int knapsack(int V, int n, vector<vector<int> >& vw) {
        // write code here
        const int N = 1e4;
        int f[N][N];
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= V; j++) {
                if (j < vw[i-1][0]) {
                    f[i][j] = f[i - 1][j];
                } else {
                    f[i][j] = max(f[i - 1][j], f[i - 1][j - vw[i-1][0]] + vw[i-1][1]);
                }
            }
        }
        return f[n][V];
    }
};